package com.bugpool.leilema.tc.service;

import cn.hutool.core.lang.tree.Tree;
import com.bugpool.leilema.tc.bean.entity.TreeEntity;

import java.util.List;

/**
 * @Author wh
 * @Description
 * @Date 2023/2/28 9:12
 * @Version 1.0
 **/
public interface TreeService {

    /**
     * 返回构建的树列表
     * @return
     */
    List<Tree<Long>> listTree();

    /**
     * 新增树结构
     * @param tree
     * @return
     */
    boolean addTree(TreeEntity tree);

    /**
     * 修改树结构属性
     * @param tree
     * @return
     */
    boolean updateTree(TreeEntity tree);

    /**
     *  根据 主键id 获取详情
     * @param id
     * @return
     */
    TreeEntity getTreeEntity(Long id);

    /**
     * 根据ids 删除
     * @param ids
     * @return
     */
    boolean delByIds(List<Long> ids);

    /**
     * 根据用户id 组合成部分图层结构
     * @param userId
     * @return
     */
    List<Tree<Long>> listTreeByUserId(Long userId);

    /**
     * 数据图层绑定角色
     * @param treeIds
     * @return
     */
    boolean buildRoleTree(List<Long> treeIds,Long roleId);
}
